Video is a critical part of many applications such as entertainment, communications, and training. In the past video data was represented exclusively in analog form which restricted the creation, storage, and distribution of video to systems dedicated only to analog video. It is now possible to process video digitally which has greatly lowered the cost of using and creating video, and has allowed video to be created, stored and transmitted by general purpose digital computer equipment. This way of working with video is far less expensive and more convenient than use of analog means and has enabled many new ways of using and working with video.
Unfortunately, raw digital video on a large true color display represents a digital data rate in excess of 300 million bytes per second of video. Storing and transmitting raw data at this rate is difficult except with very expensive equipment and high performance digital communication links. A wide range of techniques have been developed to compress digital video in order to reduce this data rate to one that is far more manageable. Each compression technique has advantages for different applications.
This specification will refer to several types of image data processing operations, including the following: a display refresh, a process which repetitively transfers every pixel to a display from a frame buffer memory (typically at a rate of 60 to 75 display refreshes per second); a host computer read (of the single pixel type), a process by which a host computer instructs a frame buffer system to read a single pixel from a frame buffer and transfer the pixel to the host computer; a host computer read (of the multiple pixel type), a process by which a host computer instructs a frame buffer system to read multiple pixels from a frame buffer and transfer the pixels to the host computer; a host computer write (of the single pixel type), a process by which a host computer writes a single pixel to a frame buffer; a host computer write (of the multiple pixel type), a process by which a host computer writes multiple pixels to a frame buffer; a raster operation (ROP), a process by which multiple pixels stored in a frame buffer are transformed, which typically requires reading of multiple pixels from the frame buffer, transformation of these pixels, and writing back the transrotator pixels to the frame buffer; and a pixel move, a process by which multiple pixels stored in a frame buffer are copied to other memory locations in the frame buffer (without being transformed).
Throughout this specification, the term "BLIT operations" is employed to denote host independent pixel moves and raster operations within a frame buffer memory system, and the term "Blitter" (or "BLITter") denotes the portion of the logic of the inventive frame buffer controller (e.g., frame buffer controller 4 of FIG. 1) responsible for BLIT operations.
One type of BLIT operation is a copy of a rectangular block of pixels from one location in a frame buffer to another. This operation is defined by the X,Y coordinates (Sx, Sy) of the upper left corner of the source block of pixels, the X,Y coordinates (Dx,Dy) of the upper left corner of the destination block, the width and height (Ws, Hs) of the source block, and the width (W) of the frame. It is a well-understood problem in the field to design means for performing this function completely within a graphics processor (e.g., within frame buffer controller 4 of FIG. 1) using only these parameters to define this specific type of BLIT operation.